#include "pa.h"

struct arret* constrArret(int line)
{
	struct arret *ret=malloc(sizeof(struct arret));
	ret->pa=line;
	ret->suivant=NULL;

	return ret;
}

struct pa* constrPa()
{
	struct pa *ret=malloc(sizeof(struct pa));

	ret->size=0;
	ret->premier=ret->dernier=ret->courant=NULL;

	return ret;
}

void ajoutPa(struct pa *p, int line)
{
	if(p==NULL) return;

	struct arret *ret=constrArret(line);
	
	if(p->size==0)
	{
		p->dernier=ret;
		p->premier=ret;
		p->courant=ret;
		p->size++;
	}
	else
	{	
		p->dernier->suivant=ret;
		p->dernier=ret;
		p->size++;
	}
}

int lireSuivant(struct pa *p)
{
	if(p==NULL || p->courant==NULL) return 0;

	int pa=p->courant->pa;
	p->courant=p->courant->suivant;
	p->size--;
	return pa;
}	

void nettoyerPa(struct pa *p)
{
	if(p==NULL) return;

	struct arret *tmp=p->premier, *sup=NULL;

	while(tmp!=NULL)
	{
		sup=tmp;
		tmp=tmp->suivant;
		free(sup);	
	}

	p->premier=NULL;
	p->dernier=NULL;
	p->courant=NULL;
	p->size=0;
}

void affichagePa(struct pa *p)
{
	int i=0;
	char buffer[128];
	struct arret *tmp=p->courant;

	printf("Nb point d'arret=%d;\n\n", p->size);
	while(tmp!=NULL)
	{
		sprintf(buffer, "PA n°%d en %d.", i, tmp->pa);
		printf("%s\n", buffer);
		i++;
		tmp=tmp->suivant;
	}
}
